package org.dromara.nursing.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.nursing.domain.MsServiceQualityStatistics;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 服务质量统计视图对象 ms_service_quality_statistics
 *
 * @author Lion Li
 * @date 2025-04-23
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = MsServiceQualityStatistics.class)
public class MsServiceQualityStatisticsVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 统计ID
     */
    @ExcelProperty(value = "统计ID")
    private Long statId;

    /**
     * 统计日期
     */
    @ExcelProperty(value = "统计日期")
    private Date statDate;

    /**
     * 统计月份
     */
    @ExcelProperty(value = "统计月份")
    private String statMonth;

    /**
     * 统计年份
     */
    @ExcelProperty(value = "统计年份")
    private Long statYear;

    /**
     * 服务类型
     */
    @ExcelProperty(value = "服务类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_fwlx")
    private String serviceType;

    /**
     * 服务总数
     */
    @ExcelProperty(value = "服务总数")
    private Long totalServices;

    /**
     * 已完成服务数
     */
    @ExcelProperty(value = "已完成服务数")
    private Long completedServices;

    /**
     * 已取消服务数
     */
    @ExcelProperty(value = "已取消服务数")
    private Long canceledServices;

    /**
     * 平均响应时间(分钟)
     */
    @ExcelProperty(value = "平均响应时间(分钟)")
    private Long avgResponseTime;

    /**
     * 平均完成时间(分钟)
     */
    @ExcelProperty(value = "平均完成时间(分钟)")
    private Long avgCompletionTime;

    /**
     * 平均满意度评分(1-5分)
     */
    @ExcelProperty(value = "平均满意度评分(1-5分)")
    private Long avgSatisfactionScore;

    /**
     * 投诉数量
     */
    @ExcelProperty(value = "投诉数量")
    private Long complaintCount;

    /**
     * 表扬数量
     */
    @ExcelProperty(value = "表扬数量")
    private Long praiseCount;

    /**
     * 改进建议
     */
    @ExcelProperty(value = "改进建议")
    private String improvementSuggestions;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;


}
